package com.lee.pullrefresh.http;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

public class JSONArrayPoxy extends JSONArray {

	private JSONArray jsonArray;

	public JSONArrayPoxy(JSONArray jsonArray) {
		this.jsonArray = jsonArray;
	}
	public JSONArrayPoxy() {
		jsonArray =  new JSONArray();
	}

	public boolean equals(Object object) {
		return jsonArray.equals(object);
	}

	public Object get(int index) throws JSONException {
		return jsonArray.get(index);
	}

	public boolean getBoolean(int index) throws JSONException {
		return jsonArray.getBoolean(index);
	}

	public double getDouble(int index) throws JSONException {
		return jsonArray.getDouble(index);
	}

	public int getInt(int index) throws JSONException {
		return jsonArray.getInt(index);
	}

	public JSONArrayPoxy getJSONArray(int index) throws JSONException {
		return new JSONArrayPoxy(jsonArray.getJSONArray(index));
	}

	public JSONArrayPoxy getJSONArrayOrNull(int index) {
		try {
			return new JSONArrayPoxy(jsonArray.getJSONArray(index));
		} catch (JSONException e) {
			return null;
		}
	}

	public JSONObjectProxy getJSONObject(int index) throws JSONException {
		return new JSONObjectProxy(new JSONObjectProxy(jsonArray.getJSONObject(index)));
	}

	public JSONObjectProxy getJSONObjectOrNull(int index) {
		try {
			return new JSONObjectProxy(new JSONObjectProxy(jsonArray.getJSONObject(index)));
		} catch (JSONException e) {
			return null;
		}
	}


	public long getLong(int index) throws JSONException {
		return jsonArray.getLong(index);
	}

	public String getString(int index) throws JSONException {
		return jsonArray.getString(index);
	}

	public int hashCode() {
		return jsonArray.hashCode();
	}

	public boolean isNull(int index) {
		return jsonArray.isNull(index);
	}

	public String join(String separator) throws JSONException {
		return jsonArray.join(separator);
	}

	public int length() {
		return jsonArray.length();
	}

	public Object opt(int index) {
		return jsonArray.opt(index);
	}

	public boolean optBoolean(int index, boolean fallback) {
		return jsonArray.optBoolean(index, fallback);
	}

	public boolean optBoolean(int index) {
		return jsonArray.optBoolean(index);
	}

	public double optDouble(int index, double fallback) {
		return jsonArray.optDouble(index, fallback);
	}

	public double optDouble(int index) {
		return jsonArray.optDouble(index);
	}

	public int optInt(int index, int fallback) {
		return jsonArray.optInt(index, fallback);
	}

	public int optInt(int index) {
		return jsonArray.optInt(index);
	}

	public JSONArray optJSONArray(int index) {
		return jsonArray.optJSONArray(index);
	}

	public JSONObject optJSONObject(int index) {
		return jsonArray.optJSONObject(index);
	}

	public long optLong(int index, long fallback) {
		return jsonArray.optLong(index, fallback);
	}

	public long optLong(int index) {
		return jsonArray.optLong(index);
	}

	public String optString(int index, String fallback) {
		return jsonArray.optString(index, fallback);
	}

	public String optString(int index) {
		return jsonArray.optString(index);
	}

	public JSONArray put(boolean value) {
		return jsonArray.put(value);
	}

	public JSONArray put(double value) throws JSONException {
		return jsonArray.put(value);
	}

	public JSONArray put(int index, boolean value) throws JSONException {
		return jsonArray.put(index, value);
	}

	public JSONArray put(int index, double value) throws JSONException {
		return jsonArray.put(index, value);
	}

	public JSONArray put(int index, int value) throws JSONException {
		return jsonArray.put(index, value);
	}

	public JSONArray put(int index, long value) throws JSONException {
		return jsonArray.put(index, value);
	}

	public JSONArray put(int index, Object value) throws JSONException {
		return jsonArray.put(index, value);
	}

	public JSONArray put(int value) {
		return jsonArray.put(value);
	}

	public JSONArray put(long value) {
		return jsonArray.put(value);
	}

	public JSONArray put(Object value) {
		return jsonArray.put(value);
	}

	public JSONObject toJSONObject(JSONArray names) throws JSONException {
		return jsonArray.toJSONObject(names);
	}

	public String toString() {
		return jsonArray.toString();
	}

	public String toString(int indentSpaces) throws JSONException {
		return jsonArray.toString(indentSpaces);
	}
	
	public static List<Map<String,Object>> getlistMap(String jsonString){  
        List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();  
        try {  
            JSONObject jsonObject = new JSONObject(jsonString);  
        //    JSONArray jsonArray = jsonObject.getJSONArray(key);  
//            for (int i = 0; i < jsonArray.length(); i++) {  
//                JSONObject jsonObject2 = jsonArray.getJSONObject(i);  
                  Map<String,Object> map=new HashMap<String, Object>();  
                  Iterator<String> iterator=jsonObject.keys();  
                    
                  while(iterator.hasNext()){  
                      String json_key= iterator.next(); 
                      Object json_value=jsonObject.get(json_key);  
                      if(json_value==null){  
                          json_value="";  
                      }  
                      map.put(json_key, json_value);  
                  }  
               list.add(map);  
           // }  
            }catch(Exception e){  
                e.printStackTrace();  
            }  
        return list;  
    }  

}
